(レポート)MBL311:AWS IoT: 安全にモノを構築し、プロビジョンし、利用する #reinvent
本日発表された新サービス、AWS IoTのDeep Diveセッションに参加しました。スピーカーは Eric Brandwine です。
このセッションでは AWS IoT サービスに関して
- モノとAWS ゲートウェイの通信
- モノの識別
- AWS ゲートウェイを経由したAWSリソースの操作
でいかにしてセキュリティを担保しているのか説明が行われました。
モノとAWS ゲートウェイの通信
暗号化せずにパケットを送受信すると、様々なツールを使ってパケットの中身をのぞき見出来てしまいます。
AWS IoT では MQTT と HTTP という2つのプロトコルで IoT からデータ送信できます。
- MQTT では相互認証(mutual authentication) と TLS による暗号化
- HTTP では AWS 認証と TLS による暗号化
を採用しています。
スライドにも "One Service, Two Protocols" という記述がありますが、このようなサービスを他に知りません。
モノの識別
モノ(クライアント)の識別はX.509 証明書が利用されます。
証明書に必要な公開鍵のペアは AWS が生成することも、ユーザーが作成したものを利用することも出来ます。
証明書ごとに activate, deactivate, revoke と言った操作が可能です。
このサービスで利用される認証局は AWS IoT 専有です。
AWS ゲートウェイを経由したAWSリソースの操作
モノ(クライアント)に何を操作できるようにさせるのかについては、IAM と同じく Policy で制御します。
X.509 のフローで証明書を登録すると "arn:aws:iot:REGION:ACCOUNT_ID:cert/xxxx" という AWS ARN が払いだされます。この ARN に対してポリシーをアタッチします。
まとめ
AWS IoT のリリースで証明書登録とともに ARN が払い出され、ポリシー設定できるようになりました。
これまでから存在する
- IAM ユーザー
- cognito ユーザー
と適宜使い分けていきたいと思います。